// Generated from NewJavaParser.g4 by ANTLR 4.7
package com.hsh.generate;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link NewJavaParser}.
 */
public interface NewJavaParserListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#compilationUnit}.
	 * @param ctx the parse tree
	 */
	void enterCompilationUnit(NewJavaParser.CompilationUnitContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#compilationUnit}.
	 * @param ctx the parse tree
	 */
	void exitCompilationUnit(NewJavaParser.CompilationUnitContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#packageDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterPackageDeclaration(NewJavaParser.PackageDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#packageDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitPackageDeclaration(NewJavaParser.PackageDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#importDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterImportDeclaration(NewJavaParser.ImportDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#importDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitImportDeclaration(NewJavaParser.ImportDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterTypeDeclaration(NewJavaParser.TypeDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitTypeDeclaration(NewJavaParser.TypeDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#modifier}.
	 * @param ctx the parse tree
	 */
	void enterModifier(NewJavaParser.ModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#modifier}.
	 * @param ctx the parse tree
	 */
	void exitModifier(NewJavaParser.ModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classOrInterfaceModifier}.
	 * @param ctx the parse tree
	 */
	void enterClassOrInterfaceModifier(NewJavaParser.ClassOrInterfaceModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classOrInterfaceModifier}.
	 * @param ctx the parse tree
	 */
	void exitClassOrInterfaceModifier(NewJavaParser.ClassOrInterfaceModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#variableModifier}.
	 * @param ctx the parse tree
	 */
	void enterVariableModifier(NewJavaParser.VariableModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#variableModifier}.
	 * @param ctx the parse tree
	 */
	void exitVariableModifier(NewJavaParser.VariableModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterClassDeclaration(NewJavaParser.ClassDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitClassDeclaration(NewJavaParser.ClassDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeParameters}.
	 * @param ctx the parse tree
	 */
	void enterTypeParameters(NewJavaParser.TypeParametersContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeParameters}.
	 * @param ctx the parse tree
	 */
	void exitTypeParameters(NewJavaParser.TypeParametersContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeParameter}.
	 * @param ctx the parse tree
	 */
	void enterTypeParameter(NewJavaParser.TypeParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeParameter}.
	 * @param ctx the parse tree
	 */
	void exitTypeParameter(NewJavaParser.TypeParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeBound}.
	 * @param ctx the parse tree
	 */
	void enterTypeBound(NewJavaParser.TypeBoundContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeBound}.
	 * @param ctx the parse tree
	 */
	void exitTypeBound(NewJavaParser.TypeBoundContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#enumDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterEnumDeclaration(NewJavaParser.EnumDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#enumDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitEnumDeclaration(NewJavaParser.EnumDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#enumConstants}.
	 * @param ctx the parse tree
	 */
	void enterEnumConstants(NewJavaParser.EnumConstantsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#enumConstants}.
	 * @param ctx the parse tree
	 */
	void exitEnumConstants(NewJavaParser.EnumConstantsContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#enumConstant}.
	 * @param ctx the parse tree
	 */
	void enterEnumConstant(NewJavaParser.EnumConstantContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#enumConstant}.
	 * @param ctx the parse tree
	 */
	void exitEnumConstant(NewJavaParser.EnumConstantContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#enumBodyDeclarations}.
	 * @param ctx the parse tree
	 */
	void enterEnumBodyDeclarations(NewJavaParser.EnumBodyDeclarationsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#enumBodyDeclarations}.
	 * @param ctx the parse tree
	 */
	void exitEnumBodyDeclarations(NewJavaParser.EnumBodyDeclarationsContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#interfaceDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceDeclaration(NewJavaParser.InterfaceDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#interfaceDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceDeclaration(NewJavaParser.InterfaceDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classBody}.
	 * @param ctx the parse tree
	 */
	void enterClassBody(NewJavaParser.ClassBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classBody}.
	 * @param ctx the parse tree
	 */
	void exitClassBody(NewJavaParser.ClassBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#interfaceBody}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceBody(NewJavaParser.InterfaceBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#interfaceBody}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceBody(NewJavaParser.InterfaceBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterClassBodyDeclaration(NewJavaParser.ClassBodyDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitClassBodyDeclaration(NewJavaParser.ClassBodyDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMemberDeclaration(NewJavaParser.MemberDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMemberDeclaration(NewJavaParser.MemberDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#methodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMethodDeclaration(NewJavaParser.MethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#methodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMethodDeclaration(NewJavaParser.MethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#methodBody}.
	 * @param ctx the parse tree
	 */
	void enterMethodBody(NewJavaParser.MethodBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#methodBody}.
	 * @param ctx the parse tree
	 */
	void exitMethodBody(NewJavaParser.MethodBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeTypeOrVoid}.
	 * @param ctx the parse tree
	 */
	void enterTypeTypeOrVoid(NewJavaParser.TypeTypeOrVoidContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeTypeOrVoid}.
	 * @param ctx the parse tree
	 */
	void exitTypeTypeOrVoid(NewJavaParser.TypeTypeOrVoidContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#genericMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericMethodDeclaration(NewJavaParser.GenericMethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#genericMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericMethodDeclaration(NewJavaParser.GenericMethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#genericConstructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericConstructorDeclaration(NewJavaParser.GenericConstructorDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#genericConstructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericConstructorDeclaration(NewJavaParser.GenericConstructorDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#constructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterConstructorDeclaration(NewJavaParser.ConstructorDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#constructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitConstructorDeclaration(NewJavaParser.ConstructorDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#fieldDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterFieldDeclaration(NewJavaParser.FieldDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#fieldDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitFieldDeclaration(NewJavaParser.FieldDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#interfaceBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceBodyDeclaration(NewJavaParser.InterfaceBodyDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#interfaceBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceBodyDeclaration(NewJavaParser.InterfaceBodyDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceMemberDeclaration(NewJavaParser.InterfaceMemberDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceMemberDeclaration(NewJavaParser.InterfaceMemberDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#constDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterConstDeclaration(NewJavaParser.ConstDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#constDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitConstDeclaration(NewJavaParser.ConstDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#constantDeclarator}.
	 * @param ctx the parse tree
	 */
	void enterConstantDeclarator(NewJavaParser.ConstantDeclaratorContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#constantDeclarator}.
	 * @param ctx the parse tree
	 */
	void exitConstantDeclarator(NewJavaParser.ConstantDeclaratorContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#interfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceMethodDeclaration(NewJavaParser.InterfaceMethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#interfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceMethodDeclaration(NewJavaParser.InterfaceMethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#interfaceMethodModifier}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceMethodModifier(NewJavaParser.InterfaceMethodModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#interfaceMethodModifier}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceMethodModifier(NewJavaParser.InterfaceMethodModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#genericInterfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericInterfaceMethodDeclaration(NewJavaParser.GenericInterfaceMethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#genericInterfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericInterfaceMethodDeclaration(NewJavaParser.GenericInterfaceMethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#variableDeclarators}.
	 * @param ctx the parse tree
	 */
	void enterVariableDeclarators(NewJavaParser.VariableDeclaratorsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#variableDeclarators}.
	 * @param ctx the parse tree
	 */
	void exitVariableDeclarators(NewJavaParser.VariableDeclaratorsContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#variableDeclarator}.
	 * @param ctx the parse tree
	 */
	void enterVariableDeclarator(NewJavaParser.VariableDeclaratorContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#variableDeclarator}.
	 * @param ctx the parse tree
	 */
	void exitVariableDeclarator(NewJavaParser.VariableDeclaratorContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#variableDeclaratorId}.
	 * @param ctx the parse tree
	 */
	void enterVariableDeclaratorId(NewJavaParser.VariableDeclaratorIdContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#variableDeclaratorId}.
	 * @param ctx the parse tree
	 */
	void exitVariableDeclaratorId(NewJavaParser.VariableDeclaratorIdContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#variableInitializer}.
	 * @param ctx the parse tree
	 */
	void enterVariableInitializer(NewJavaParser.VariableInitializerContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#variableInitializer}.
	 * @param ctx the parse tree
	 */
	void exitVariableInitializer(NewJavaParser.VariableInitializerContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#arrayInitializer}.
	 * @param ctx the parse tree
	 */
	void enterArrayInitializer(NewJavaParser.ArrayInitializerContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#arrayInitializer}.
	 * @param ctx the parse tree
	 */
	void exitArrayInitializer(NewJavaParser.ArrayInitializerContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classOrInterfaceType}.
	 * @param ctx the parse tree
	 */
	void enterClassOrInterfaceType(NewJavaParser.ClassOrInterfaceTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classOrInterfaceType}.
	 * @param ctx the parse tree
	 */
	void exitClassOrInterfaceType(NewJavaParser.ClassOrInterfaceTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeArgument}.
	 * @param ctx the parse tree
	 */
	void enterTypeArgument(NewJavaParser.TypeArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeArgument}.
	 * @param ctx the parse tree
	 */
	void exitTypeArgument(NewJavaParser.TypeArgumentContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#qualifiedNameList}.
	 * @param ctx the parse tree
	 */
	void enterQualifiedNameList(NewJavaParser.QualifiedNameListContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#qualifiedNameList}.
	 * @param ctx the parse tree
	 */
	void exitQualifiedNameList(NewJavaParser.QualifiedNameListContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#formalParameters}.
	 * @param ctx the parse tree
	 */
	void enterFormalParameters(NewJavaParser.FormalParametersContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#formalParameters}.
	 * @param ctx the parse tree
	 */
	void exitFormalParameters(NewJavaParser.FormalParametersContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#formalParameterList}.
	 * @param ctx the parse tree
	 */
	void enterFormalParameterList(NewJavaParser.FormalParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#formalParameterList}.
	 * @param ctx the parse tree
	 */
	void exitFormalParameterList(NewJavaParser.FormalParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#formalParameter}.
	 * @param ctx the parse tree
	 */
	void enterFormalParameter(NewJavaParser.FormalParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#formalParameter}.
	 * @param ctx the parse tree
	 */
	void exitFormalParameter(NewJavaParser.FormalParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#lastFormalParameter}.
	 * @param ctx the parse tree
	 */
	void enterLastFormalParameter(NewJavaParser.LastFormalParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#lastFormalParameter}.
	 * @param ctx the parse tree
	 */
	void exitLastFormalParameter(NewJavaParser.LastFormalParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#qualifiedName}.
	 * @param ctx the parse tree
	 */
	void enterQualifiedName(NewJavaParser.QualifiedNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#qualifiedName}.
	 * @param ctx the parse tree
	 */
	void exitQualifiedName(NewJavaParser.QualifiedNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#literal}.
	 * @param ctx the parse tree
	 */
	void enterLiteral(NewJavaParser.LiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#literal}.
	 * @param ctx the parse tree
	 */
	void exitLiteral(NewJavaParser.LiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#integerLiteral}.
	 * @param ctx the parse tree
	 */
	void enterIntegerLiteral(NewJavaParser.IntegerLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#integerLiteral}.
	 * @param ctx the parse tree
	 */
	void exitIntegerLiteral(NewJavaParser.IntegerLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#floatLiteral}.
	 * @param ctx the parse tree
	 */
	void enterFloatLiteral(NewJavaParser.FloatLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#floatLiteral}.
	 * @param ctx the parse tree
	 */
	void exitFloatLiteral(NewJavaParser.FloatLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotation}.
	 * @param ctx the parse tree
	 */
	void enterAnnotation(NewJavaParser.AnnotationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotation}.
	 * @param ctx the parse tree
	 */
	void exitAnnotation(NewJavaParser.AnnotationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#elementValuePairs}.
	 * @param ctx the parse tree
	 */
	void enterElementValuePairs(NewJavaParser.ElementValuePairsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#elementValuePairs}.
	 * @param ctx the parse tree
	 */
	void exitElementValuePairs(NewJavaParser.ElementValuePairsContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#elementValuePair}.
	 * @param ctx the parse tree
	 */
	void enterElementValuePair(NewJavaParser.ElementValuePairContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#elementValuePair}.
	 * @param ctx the parse tree
	 */
	void exitElementValuePair(NewJavaParser.ElementValuePairContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#elementValue}.
	 * @param ctx the parse tree
	 */
	void enterElementValue(NewJavaParser.ElementValueContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#elementValue}.
	 * @param ctx the parse tree
	 */
	void exitElementValue(NewJavaParser.ElementValueContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#elementValueArrayInitializer}.
	 * @param ctx the parse tree
	 */
	void enterElementValueArrayInitializer(NewJavaParser.ElementValueArrayInitializerContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#elementValueArrayInitializer}.
	 * @param ctx the parse tree
	 */
	void exitElementValueArrayInitializer(NewJavaParser.ElementValueArrayInitializerContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeDeclaration(NewJavaParser.AnnotationTypeDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeDeclaration(NewJavaParser.AnnotationTypeDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationTypeBody}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeBody(NewJavaParser.AnnotationTypeBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationTypeBody}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeBody(NewJavaParser.AnnotationTypeBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationTypeElementDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeElementDeclaration(NewJavaParser.AnnotationTypeElementDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationTypeElementDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeElementDeclaration(NewJavaParser.AnnotationTypeElementDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationTypeElementRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeElementRest(NewJavaParser.AnnotationTypeElementRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationTypeElementRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeElementRest(NewJavaParser.AnnotationTypeElementRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationMethodOrConstantRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationMethodOrConstantRest(NewJavaParser.AnnotationMethodOrConstantRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationMethodOrConstantRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationMethodOrConstantRest(NewJavaParser.AnnotationMethodOrConstantRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationMethodRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationMethodRest(NewJavaParser.AnnotationMethodRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationMethodRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationMethodRest(NewJavaParser.AnnotationMethodRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#annotationConstantRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationConstantRest(NewJavaParser.AnnotationConstantRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#annotationConstantRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationConstantRest(NewJavaParser.AnnotationConstantRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#defaultValue}.
	 * @param ctx the parse tree
	 */
	void enterDefaultValue(NewJavaParser.DefaultValueContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#defaultValue}.
	 * @param ctx the parse tree
	 */
	void exitDefaultValue(NewJavaParser.DefaultValueContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#block}.
	 * @param ctx the parse tree
	 */
	void enterBlock(NewJavaParser.BlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#block}.
	 * @param ctx the parse tree
	 */
	void exitBlock(NewJavaParser.BlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#blockStatement}.
	 * @param ctx the parse tree
	 */
	void enterBlockStatement(NewJavaParser.BlockStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#blockStatement}.
	 * @param ctx the parse tree
	 */
	void exitBlockStatement(NewJavaParser.BlockStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#localVariableDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterLocalVariableDeclaration(NewJavaParser.LocalVariableDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#localVariableDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitLocalVariableDeclaration(NewJavaParser.LocalVariableDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#localTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterLocalTypeDeclaration(NewJavaParser.LocalTypeDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#localTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitLocalTypeDeclaration(NewJavaParser.LocalTypeDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterStatement(NewJavaParser.StatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitStatement(NewJavaParser.StatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#catchClause}.
	 * @param ctx the parse tree
	 */
	void enterCatchClause(NewJavaParser.CatchClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#catchClause}.
	 * @param ctx the parse tree
	 */
	void exitCatchClause(NewJavaParser.CatchClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#catchType}.
	 * @param ctx the parse tree
	 */
	void enterCatchType(NewJavaParser.CatchTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#catchType}.
	 * @param ctx the parse tree
	 */
	void exitCatchType(NewJavaParser.CatchTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#finallyBlock}.
	 * @param ctx the parse tree
	 */
	void enterFinallyBlock(NewJavaParser.FinallyBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#finallyBlock}.
	 * @param ctx the parse tree
	 */
	void exitFinallyBlock(NewJavaParser.FinallyBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#resourceSpecification}.
	 * @param ctx the parse tree
	 */
	void enterResourceSpecification(NewJavaParser.ResourceSpecificationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#resourceSpecification}.
	 * @param ctx the parse tree
	 */
	void exitResourceSpecification(NewJavaParser.ResourceSpecificationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#resources}.
	 * @param ctx the parse tree
	 */
	void enterResources(NewJavaParser.ResourcesContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#resources}.
	 * @param ctx the parse tree
	 */
	void exitResources(NewJavaParser.ResourcesContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#resource}.
	 * @param ctx the parse tree
	 */
	void enterResource(NewJavaParser.ResourceContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#resource}.
	 * @param ctx the parse tree
	 */
	void exitResource(NewJavaParser.ResourceContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#switchBlockStatementGroup}.
	 * @param ctx the parse tree
	 */
	void enterSwitchBlockStatementGroup(NewJavaParser.SwitchBlockStatementGroupContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#switchBlockStatementGroup}.
	 * @param ctx the parse tree
	 */
	void exitSwitchBlockStatementGroup(NewJavaParser.SwitchBlockStatementGroupContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void enterSwitchLabel(NewJavaParser.SwitchLabelContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void exitSwitchLabel(NewJavaParser.SwitchLabelContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#forControl}.
	 * @param ctx the parse tree
	 */
	void enterForControl(NewJavaParser.ForControlContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#forControl}.
	 * @param ctx the parse tree
	 */
	void exitForControl(NewJavaParser.ForControlContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#forInit}.
	 * @param ctx the parse tree
	 */
	void enterForInit(NewJavaParser.ForInitContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#forInit}.
	 * @param ctx the parse tree
	 */
	void exitForInit(NewJavaParser.ForInitContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#enhancedForControl}.
	 * @param ctx the parse tree
	 */
	void enterEnhancedForControl(NewJavaParser.EnhancedForControlContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#enhancedForControl}.
	 * @param ctx the parse tree
	 */
	void exitEnhancedForControl(NewJavaParser.EnhancedForControlContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#parExpression}.
	 * @param ctx the parse tree
	 */
	void enterParExpression(NewJavaParser.ParExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#parExpression}.
	 * @param ctx the parse tree
	 */
	void exitParExpression(NewJavaParser.ParExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#expressionList}.
	 * @param ctx the parse tree
	 */
	void enterExpressionList(NewJavaParser.ExpressionListContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#expressionList}.
	 * @param ctx the parse tree
	 */
	void exitExpressionList(NewJavaParser.ExpressionListContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterExpression(NewJavaParser.ExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitExpression(NewJavaParser.ExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#lambdaExpression}.
	 * @param ctx the parse tree
	 */
	void enterLambdaExpression(NewJavaParser.LambdaExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#lambdaExpression}.
	 * @param ctx the parse tree
	 */
	void exitLambdaExpression(NewJavaParser.LambdaExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#lambdaParameters}.
	 * @param ctx the parse tree
	 */
	void enterLambdaParameters(NewJavaParser.LambdaParametersContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#lambdaParameters}.
	 * @param ctx the parse tree
	 */
	void exitLambdaParameters(NewJavaParser.LambdaParametersContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#lambdaBody}.
	 * @param ctx the parse tree
	 */
	void enterLambdaBody(NewJavaParser.LambdaBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#lambdaBody}.
	 * @param ctx the parse tree
	 */
	void exitLambdaBody(NewJavaParser.LambdaBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimary(NewJavaParser.PrimaryContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimary(NewJavaParser.PrimaryContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classType}.
	 * @param ctx the parse tree
	 */
	void enterClassType(NewJavaParser.ClassTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classType}.
	 * @param ctx the parse tree
	 */
	void exitClassType(NewJavaParser.ClassTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#creator}.
	 * @param ctx the parse tree
	 */
	void enterCreator(NewJavaParser.CreatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#creator}.
	 * @param ctx the parse tree
	 */
	void exitCreator(NewJavaParser.CreatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#createdName}.
	 * @param ctx the parse tree
	 */
	void enterCreatedName(NewJavaParser.CreatedNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#createdName}.
	 * @param ctx the parse tree
	 */
	void exitCreatedName(NewJavaParser.CreatedNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#innerCreator}.
	 * @param ctx the parse tree
	 */
	void enterInnerCreator(NewJavaParser.InnerCreatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#innerCreator}.
	 * @param ctx the parse tree
	 */
	void exitInnerCreator(NewJavaParser.InnerCreatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#arrayCreatorRest}.
	 * @param ctx the parse tree
	 */
	void enterArrayCreatorRest(NewJavaParser.ArrayCreatorRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#arrayCreatorRest}.
	 * @param ctx the parse tree
	 */
	void exitArrayCreatorRest(NewJavaParser.ArrayCreatorRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#classCreatorRest}.
	 * @param ctx the parse tree
	 */
	void enterClassCreatorRest(NewJavaParser.ClassCreatorRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#classCreatorRest}.
	 * @param ctx the parse tree
	 */
	void exitClassCreatorRest(NewJavaParser.ClassCreatorRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#explicitGenericInvocation}.
	 * @param ctx the parse tree
	 */
	void enterExplicitGenericInvocation(NewJavaParser.ExplicitGenericInvocationContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#explicitGenericInvocation}.
	 * @param ctx the parse tree
	 */
	void exitExplicitGenericInvocation(NewJavaParser.ExplicitGenericInvocationContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void enterTypeArgumentsOrDiamond(NewJavaParser.TypeArgumentsOrDiamondContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void exitTypeArgumentsOrDiamond(NewJavaParser.TypeArgumentsOrDiamondContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#nonWildcardTypeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void enterNonWildcardTypeArgumentsOrDiamond(NewJavaParser.NonWildcardTypeArgumentsOrDiamondContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#nonWildcardTypeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void exitNonWildcardTypeArgumentsOrDiamond(NewJavaParser.NonWildcardTypeArgumentsOrDiamondContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#nonWildcardTypeArguments}.
	 * @param ctx the parse tree
	 */
	void enterNonWildcardTypeArguments(NewJavaParser.NonWildcardTypeArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#nonWildcardTypeArguments}.
	 * @param ctx the parse tree
	 */
	void exitNonWildcardTypeArguments(NewJavaParser.NonWildcardTypeArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeList}.
	 * @param ctx the parse tree
	 */
	void enterTypeList(NewJavaParser.TypeListContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeList}.
	 * @param ctx the parse tree
	 */
	void exitTypeList(NewJavaParser.TypeListContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeType}.
	 * @param ctx the parse tree
	 */
	void enterTypeType(NewJavaParser.TypeTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeType}.
	 * @param ctx the parse tree
	 */
	void exitTypeType(NewJavaParser.TypeTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#primitiveType}.
	 * @param ctx the parse tree
	 */
	void enterPrimitiveType(NewJavaParser.PrimitiveTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#primitiveType}.
	 * @param ctx the parse tree
	 */
	void exitPrimitiveType(NewJavaParser.PrimitiveTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#typeArguments}.
	 * @param ctx the parse tree
	 */
	void enterTypeArguments(NewJavaParser.TypeArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#typeArguments}.
	 * @param ctx the parse tree
	 */
	void exitTypeArguments(NewJavaParser.TypeArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#superSuffix}.
	 * @param ctx the parse tree
	 */
	void enterSuperSuffix(NewJavaParser.SuperSuffixContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#superSuffix}.
	 * @param ctx the parse tree
	 */
	void exitSuperSuffix(NewJavaParser.SuperSuffixContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#explicitGenericInvocationSuffix}.
	 * @param ctx the parse tree
	 */
	void enterExplicitGenericInvocationSuffix(NewJavaParser.ExplicitGenericInvocationSuffixContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#explicitGenericInvocationSuffix}.
	 * @param ctx the parse tree
	 */
	void exitExplicitGenericInvocationSuffix(NewJavaParser.ExplicitGenericInvocationSuffixContext ctx);
	/**
	 * Enter a parse tree produced by {@link NewJavaParser#arguments}.
	 * @param ctx the parse tree
	 */
	void enterArguments(NewJavaParser.ArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by {@link NewJavaParser#arguments}.
	 * @param ctx the parse tree
	 */
	void exitArguments(NewJavaParser.ArgumentsContext ctx);
}